package com.zzz.robot201.mvp.model.api;

import com.zzz.robot201.mvp.model.api.bean.BaseBean;
import com.zzz.robot201.mvp.model.api.bean.EquipmentBean;
import com.zzz.robot201.mvp.model.api.bean.MsgBean;
import com.zzz.robot201.mvp.model.api.bean.MsgReadBean;
import com.zzz.robot201.mvp.model.api.bean.PhoneCode;
import com.zzz.robot201.mvp.model.api.bean.PopuBean;
import com.zzz.robot201.mvp.model.api.bean.Register;

import io.reactivex.Observable;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

public interface ApiService {

    /**
     * 获取短信验证码
     *
     * @param smsPhone
     * @param smsType
     * @return
     */
    @GET("/app1/sendSms")
    Observable<PhoneCode> getPhoneCode(
            @Query("smsPhone") String smsPhone,
            @Query("smsType") String smsType
    );

    /**
     * 注册
     *
     * @param loginPhone
     * @param smsCode
     * @param loginPwd
     * @return
     */
    @GET("/app1/regist")
    Observable<Register> Register(
            @Query("loginPhone") String loginPhone,
            @Query("smsCode") String smsCode,
            @Query("loginPwd") String loginPwd
    );

    /**
     * 登陆
     *
     * @param loginPhone
     * @param loginPwd
     * @return
     */
    @GET("/app1/login")
    Observable<Register> Login(
            @Query("loginPhone") String loginPhone,
            @Query("loginPwd") String loginPwd
    );
 /**
     * 退出登陆
     *
     * @return
     */
    @GET("/app1/logout")
    Observable<BaseBean> LoginOut();

    /**
     * 获取反馈类型
     *
     * @return
     */
    @GET("/app1/user/feedback/types")
    Observable<PopuBean> getTypes();

    /**
     * 获取反馈类型
     *
     * @return
     */
    @GET("/app1/user/feedback")
    Observable<BaseBean> Feedback(
            @Query("theType") String theType,
            @Query("theContent") String theContent
    );

    /**
     * 消息
     *
     * @param pageNum
     * @param pageSize
     * @return
     */
    @POST("/app1/user/message/list")
    Observable<MsgBean> Msg(
            @Query("pageNum") int pageNum,
            @Query("pageSize") int pageSize
    );

    /**
     * 获取已绑定设备列表
     *
     * @param pageNum
     * @param pageSize
     * @return
     */
    @POST("/app1/user/robot/bindList")
    Observable<EquipmentBean> getEquipment(
            @Query("pageNum") String pageNum,
            @Query("pageSize") String pageSize
    );

    /**
     * 获取已绑定设备列表
     *
     * @param pageNum
     * @param pageSize
     * @return
     */
    @POST("/app1/user/robot/bindList")
    Observable<MsgBean> getBind(
            @Query("deviceCode") String deviceCode,
            @Query("pageNum") String pageNum,
            @Query("pageSize") String pageSize
    );

    /**
     * 消息已读
     *
     * @param id
     * @return
     */
    @POST("/app1/user/message/read/{id}")
    Observable<MsgReadBean> MsgRead(
            @Path("id") int id

    );

    /**
     * 扫码绑定
     *
     * @param deviceCode
     * @return
     */
    @POST("/app1/user/robot/bind/{deviceCode}")
    Observable<BaseBean> getScanBind(
            @Path("deviceCode") String deviceCode

    );

    /**
     * 上传数据
     *
     * @return
     */
    @GET("/app1/robot/reportData")
    Observable<BaseBean> UpData(
            @Query("theContent") String theContent
    );

}
